The Agents in Construction (AiC) ontology is a lightweight semantic model for coordinating on-site production in construction. It represents construction agents (human workers, robots, and other autonomous hardware) as they operate on a site: the processes they carry out, the elements they modify, the resources they handle, and the operational modes and metrics used to assess their performance and impact. To express how agent activities evolve over time, AiC introduces meta-properties that specify when a statement holds (at an instant or over an interval), what dimension of information it represents (planned, simulated, or performed), and who generated it. The ontology emphasizes generic, trade-agnostic concepts to ensure broad applicability across project types and delivery methods.
The namespace for AiC terms is https://w3id.org/aic#
The suggested prefix for the AiC namespace is aic
The AiC ontology is a deliverable of the research project
Smart Mobile Factory for Infrastructure Projects (SMF4INFRA).
Coordinating production on construction sites requires a shared, machine-readable representation of key operational facts: who is acting (agents), what they are working on (processes and elements), where work is taking place (zones), which resources are being used or affected (equipment and materials), and how well the work is being executed (modes and metrics). These facts are dynamic - changing as the project progresses - and must therefore be expressed with explicit temporal and contextual information.
| aic | <https://w3id.org/aic#> |
| owl | <http://www.w3.org/2002/07/owl#> |
| rdf | <http://www.w3.org/1999/02/22-rdf-syntax-ns#> |
| rdfs | <http://www.w3.org/2000/01/rdf-schema#> |
| terms | <http://purl.org/dc/terms/> |
| xml | <http://www.w3.org/XML/1998/namespace> |
| xsd | <http://www.w3.org/2001/XMLSchema#> |
| No. | Competency question | Reason for posing this question |
| Questions about continuant statements | ||
| 1.1 | What are the mode sets used to describe agent ABC? How do the modes from different mode sets correspond to each other? | Understand different ways to formally express the operation of an agent. |
| 1.2 | Which metric measures the performance of agent ABC when in operation mode XYZ? | Understand how the performance of an agent operating in a particular mode can be expressed. |
| 1.3 | Which metric is describing the performance of process 456? | Understand how the performance of a process can be expressed. |
| Questions about statements at a point in time | ||
| At time T1, ... | ||
| 2.1 | … what is the mode of agent ABC and since when has it been operating in that mode? | Find out the operation mode of the agent at any given point in time. |
| 2.2 | ... what element is agent ABC focusing on and since when has it been focusing on that? | Find out the physical elements that an agent is focusing on at any given point in time. |
| 2.3 | ... what process is agent ABC focusing on and what is the state of the process? | Find out the process and its process state that an agent is focusing on at any given point in time. |
| 2.4 | ... where is agent ABC operating, and since when has it been operating there? | Find out the location of the agent at any given point in time. |
| 2.5 | ... which process is assigned to agent ABC? | Find out what an agent has to work on at any given point in time. |
| 2.6 | ... what resources / zone is agent ABC requesting, and since when has it been requesting them? | Find out what an agent needs to execute its work at any given point in time. |
| 2.7 | ... what equipment is agent ABC working with and since when has it been working with it? | Find out the equipment usage of the agent at any given point in time. |
| 2.8 | … what is the value of the process metric of process 456? | Find out the dynamic performance of a process at any given point in time. |
| Questions about statements spanning periods of time | ||
| In the period up until time T2, ... | ||
| 3.1 | ... what material and in what quantity has agent ABC consumed already and when has agent ABC consumed it? | Find out how much material an agent has consumed that is not available anymore up until a given point in time. |
| 3.2 | ... what reusable material and in what quantity has agent ABC already provided, and when? | Find out how much material an agent has provided, which is available once again up until a given point in time. |
| In the period between time T3 and time T4, … | ||
| 3.3 | … in which modes was agent ABC operating, and for which time periods? | Find out the operation mode history of an agent in a specific period. |
| 3.4 | … what is the total time that agent ABC was operating in mode XYZ? | Quantify the agent's operating time in a specific mode. |
| 3.5 | … how often and how long was agent ABC requesting resource 123? | Quantify the frequency and duration of an agent's resource requests within a specific period. |
| 3.6 | … what is the total time that agent ABC was working with equipment 789 and focusing on process 456? | Find out the equipment usage of an agent dedicated to a particular process. |
The AiC ontology is organized into three modules - Agent, Focus, and Resource - that together describe the dynamics of agent operation on construction sites.
The Agent module models construction agents, their capabilities, their operational modes and their locations. It enables expressing who the agents are, what they are capable of doing, their mode or condition and where they are operating at any point in time.
The Focus module describes what agents direct their effort toward - either construction processes or building elements. Processes are decomposed into work packages, activities, and tasks, and linked to the elements they target. The module also represents process states and process metrics, supporting coordination and progress analysis across a project.
The Resource module represents the materials and equipment handled by agents. It links resources to their types, quantities, and locations, and distinguishes between consumable and reusable materials. The module supports describing material and equipment requirements (for operation planning) and what is used, consumed, or supplied by agents during operation.
Metadata in AiC is modeled using the class aic:InformationID. An instance of aic:InformationID represents this particular piece of information about a statement and is linked to the statement it describes via the object property aic:reifiesStatement. The statement itself is represented using standard RDF 1.1 reification (an instance of rdf:Statement with rdf:subject, rdf:predicate, and rdf:object).
aic:InformationID class
Each aic:InformationID can capture temporal validity via three properties that describe when the reified statement holds. These temporal properties describe the validity of the statement itself (as reified by rdf:Statement), not the time when the data was entered into the knowledge base (i.e. transaction time).
aic:validAt - an instant at which the statement is valid.aic:validFrom - the start of an interval during which the statement is valid.aic:validUntil - the end of that interval.Beyond temporal validity, aic:InformationID can be used to attach additional contextual metadata to the same statement, such as:
aic:informationDimension - the dimension of the information (e.g., planned, simulated, or performed).aic:generatedOn - the time at which the information was generated.aic:generatedBy - the entity or system that created it.This provides a unified mechanism for expressing provenance, data-quality categories, workflow stages, and similar annotations about a statement.
RDF 1.2 introduces triple terms and quoted triples - formerly known as RDF-star - which allow triples to be used directly as subjects or objects of other triples. This enables attaching metadata such as temporal validity or provenance directly to quoted triples, without using explicit reification structures.
aic:InformationID class
When the AiC ontology was designed, RDF 1.2 was still a W3C Working Draft and support for triple terms and SPARQL 1.2 quoted triple syntax was not yet consistent across RDF stores, SPARQL engines, and OWL reasoners. To ensure interoperability with existing RDF 1.1 tools, AiC therefore provides the aic:reifiesStatement object property to model bespoke RDF 1.1 reification.
In tools that fully support RDF 1.2 and SPARQL 1.2, the reification structures used in AiC can be systematically mapped to quoted triples (RDF-star syntax). In that case, a aic:InformationID instance refers to a triple term using the rdf:reifies object property. This yields more concise data and often simpler SPARQL queries. The two representations are intended to be semantically equivalent and can be transformed into one another where tooling permits.
IRI: https://w3id.org/aic#Activity
IRI: https://w3id.org/aic#AgentCapability
IRI: https://w3id.org/aic#ConstructionAgent
IRI: https://w3id.org/aic#ConsumableMaterial
IRI: https://w3id.org/aic#Creator
IRI: https://w3id.org/aic#Element
IRI: https://w3id.org/aic#Equipment
IRI: https://w3id.org/aic#Indicator
IRI: https://w3id.org/aic#InformationID
IRI: https://w3id.org/aic#InformationDimension
IRI: https://w3id.org/aic#Material
IRI: https://w3id.org/aic#ModeMetric
IRI: https://w3id.org/aic#ModeSet
IRI: https://w3id.org/aic#OperationMode
IRI: https://w3id.org/aic#Process
IRI: https://w3id.org/aic#ProcessMetric
IRI: https://w3id.org/aic#ProcessState
IRI: http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement
IRI: https://w3id.org/aic#Resource
IRI: https://w3id.org/aic#ResourceQuantity
IRI: https://w3id.org/aic#ResourceType
IRI: https://w3id.org/aic#ReusabeMaterial
IRI: https://w3id.org/aic#Task
IRI: https://w3id.org/aic#WorkPackage
IRI: https://w3id.org/aic#Zone
IRI: https://w3id.org/aic#belongsTo
has characteristics: asymmetric
IRI: https://w3id.org/aic#consumes
has characteristics: asymmetric
IRI: https://w3id.org/aic#containsActivity
has characteristics: asymmetric
IRI: https://w3id.org/aic#containsTask
IRI: https://w3id.org/aic#correspondsTo
has characteristics: symmetric, transitive
IRI: https://w3id.org/aic#focusesOnElement
has characteristics: asymmetric
IRI: https://w3id.org/aic#focusesOnProcess
has characteristics: asymmetric
IRI: https://w3id.org/aic#generatedBy
has characteristics: asymmetric
IRI: https://w3id.org/aic#hasCapability
has characteristics: asymmetric
IRI: https://w3id.org/aic#hasElement
IRI: https://w3id.org/aic#hasInformationDimension
has characteristics: asymmetric
IRI: https://w3id.org/aic#hasPredecessor
has characteristics: transitive
IRI: https://w3id.org/aic#hasProcessMetric
has characteristics: asymmetric
IRI: https://w3id.org/aic#hasQuantity
has characteristics: asymmetric
IRI: https://w3id.org/aic#hasResourceType
has characteristics: asymmetric
IRI: https://w3id.org/aic#hasModeMetric
has characteristics: asymmetric
IRI: https://w3id.org/aic#hasSuccessor
has characteristics: transitive
IRI: https://w3id.org/aic#isAssignedTo
has characteristics: asymmetric
IRI: https://w3id.org/aic#isDescribedBy
has characteristics: asymmetric
IRI: https://w3id.org/aic#isInOperationMode
has characteristics: asymmetric
IRI: https://w3id.org/aic#isInProcessState
has characteristics: asymmetric
IRI: https://w3id.org/aic#isLocatedIn
IRI: https://w3id.org/aic#isOperatingIn
has characteristics: asymmetric
IRI: http://www.w3.org/1999/02/22-rdf-syntax-ns#object
IRI: http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate
IRI: https://w3id.org/aic#reifiesStatement
has characteristics: functional, asymmetric
IRI: https://w3id.org/aic#releasesReusableMaterial
has characteristics: asymmetric
IRI: https://w3id.org/aic#requestsResource
has characteristics: asymmetric
IRI: https://w3id.org/aic#requestsZone
has characteristics: asymmetric
IRI: https://w3id.org/aic#requiresCapability
has characteristics: asymmetric
IRI: https://w3id.org/aic#requiresResource
IRI: http://www.w3.org/1999/02/22-rdf-syntax-ns#subject
IRI: https://w3id.org/aic#supplies
has characteristics: asymmetric
IRI: https://w3id.org/aic#targets
IRI: https://w3id.org/aic#uses
has characteristics: asymmetric
IRI: https://w3id.org/aic#generatedOn
IRI: https://w3id.org/aic#hasUnit
IRI: https://w3id.org/aic#hasValue
IRI: https://w3id.org/aic#validAt
IRI: https://w3id.org/aic#validFrom
IRI: https://w3id.org/aic#validUntil
IRI: https://w3id.org/aic#Performed
IRI: https://w3id.org/aic#Planned
IRI: https://w3id.org/aic#Simulated
This work is supported by the Swiss National Science Foundation [grant no. 204852].
The authors would like to thank Silvio Peroni for developing LODE, a Live OWL Documentation Environment, which is used for representing the Cross Referencing Section of this document and Daniel Garijo for developing Widoco, the program used to create the template used in this documentation.